/*
 * Title: 树的层次遍历（Trees on the level）
 * Author: Yuanshun L
 * Created : 23-otc-2021
 */

#include<cstdio>
#include<cstring>
#include<string>
#include<queue>
using namespace std;

struct node{
    int val;
    node* rchild,*lchild;
    node(){
        this->val = -1;
        this->rchild = this->lchild = NULL;
    }
};

// 将字符串转换为整型
int integer(char *s,int start,int end){
    int v=0;
    for(int i=start;i<=end;i++){
        v = v*10 + (s[i]-'0');
    }
    return v;
}

// 是否完全填充
bool is_full(node *n){
    if(n){
        if(n->val==-1) return false;
        return is_full(n->lchild) && is_full( n->rchild);
    }
    return true;
}

// 输出层次遍历的结果
void input(node* tree){
    queue<node*> q;
    q.push(tree);
    // 层次遍历
    while(!q.empty()){
        node* cur = q.front(); q.pop();
        printf("%d ",cur->val);
        if(cur->lchild) {
            q.push(cur->lchild);
        }
        if(cur->rchild){
            q.push(cur->rchild);
        }
    }
    printf("\n");
}

// 释放动态创建的资源
void free(node* tree){
    if(tree){
        free(tree->lchild);
        free(tree->rchild);
        delete tree;
    }
}

int main(){

    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);

    char s[270];
    while(scanf("%s",s)==1){

        node* root = new node(); // 生成一个根结点
        int sep; // 分隔逗号的下标
        int no,size; // no结点编号，size为字符串的长度
        int error = false;

        while((size = strlen(s)) > 2){
            sep = strchr(s,',') - s;
            no = integer(s,1,sep-1);

            // 添加新结点
            if(sep+1==size-1) // 根结点
                root->val = no;
            else{
                node* cur = root;
                for(int i=sep+1;i<size;i++){
                    if(s[i]=='L'){
                        if(!cur->lchild)
                            cur->lchild =  new node();
                        cur = cur->lchild;
                    }
                    else if(s[i]=='R'){
                        if(!cur->rchild)
                            cur->rchild = new node();
                        cur = cur->rchild;
                    }
                    else{
                        if(cur->val > 0)
                            error = true; // 重复路径
                        else
                            cur->val = no;
                    }
                }
            }
            scanf("%s",s);
        }// while
        
        // 输出结果
        if(error || !is_full(root)){
            printf("not complete\n");
        }
        else{
            input(root);
        }
        
        free(root);
        
    }// while


    return 0;
}
